- Software Engineering
- Software Engineeringdas, (Software-Technik, Software-Technologie), Teilgebiet der Informatik, das sich mit Methoden und Werkzeugen für das ingenieurmäßige Entwerfen, Herstellen und Implementieren von Software befasst. Das Software Engineering entstand Ende der 1960er-Jahre als Antwort auf die Software-Krise; es sollte einen Umdenkprozess in der Software-Produktion einleiten, Bewertungskriterien stärker berücksichtigen und zu qualitativ hochwertigen Software-Produkten führen. Als deren Qualitätskriterien gelten insbesondere: Benutzerfreundlichkeit, Zuverlässigkeit, Wartbarkeit, Anpassbarkeit an Änderungen der Aufgabenstellung, Portabilität, Effizienz, Ergonomie (Software-Ergonomie).Software-Engineering wird heute fast ausschließlich mithilfe spezieller Software-Werkzeuge durchgeführt; man spricht dann von CASE-Tools (CASE). Die speziellen Methoden der Software-Technik hängen von den grundlegenden Prinzipien der Programmentwicklung ab, wie strukturierte Programmierung oder objektorientierte Programmierung. Die Vorgehensmodelle der Software-Technik umfassen alle Phasen von der Problemstellung bis zur endgültigen Ausmusterung eines Programms oder Programmsystems (Software-Lebenszyklus). Für Programme mittlerer Komplexität (bis zu einer Länge von etwa 20 000 Zeilen) hat sich ein Phasenmodell mit folgenden (linear aufeinander folgenden) Phasen als zweckmäßig erwiesen: 1) Problemanalyse, 2) Software-Entwurf, 3) Implementierung, 4) Funktionsüberprüfung (Test und Verifikation), 5) Leistungsüberprüfung, 6) Installation und Abnahme, 7) Wartung. Problemanalyse und Software-Entwurf sind Gegenstand der Systemanalyse (Abb.).Als Resultat der Problemanalyse, die v. a. Istanalyse, Sollkonzeptentwicklung, Durchführbarkeitsstudie und Projektplanung umfasst, wird eine Anforderungsdefinition (Pflichtenheft) erstellt, die als verbindliches (standardisiertes) Dokument die Grundlage für den zwischen Auftraggeber und Software-Hersteller abzuschließenden Vertrag bildet. Mit dem Software-Entwurf wird das geplante komplexe Gesamtsystem modellhaft dargestellt, wobei es in voneinander unabhängige und überschaubare Komponenten (Module) zerlegt wird. Die Modularisierung ist meist hierarchisch; zu ihrer Durchführung (und ebenfalls für die spätere Implementierung) gibt es im Wesentlichen zwei Methoden: die Top-down-Methode und die Bottom-up-Methode. Der Entwurf wird als Spezifikation festgehalten, die u. a. Funktion und Schnittstellen jedes Moduls sowie einen Überblick über die Abhängigkeit der einzelnen Module voneinander enthält. Bedingt durch die Entwicklung objektorientierter Programmiersprachen setzten sich in den letzten Jahren verstärkt objektorientierte Methoden des Software-Entwurfs durch, die oft auch angepasste Vorgehensmodelle bedingen, die keine starre lineare Phasenabfolge aufweisen. Diese Phaseneinteilung kommt auch bei den meisten anderen Methoden in ähnlicher Form vor, mit Qualitätskontrollen an den Phasenübergängen.Software-Produkte mit mehr als etwa 100 000 Programmzeilen erfordern zusätzliche und andersartige Methoden, u. a. weil die Spezifikation mit dem Software-Umfang immer unübersichtlicher wird; für solche Fälle müssen leistungsstarke Software-Werkzeuge vorhanden sein. Ein weiteres wichtiges Prinzip der Software-Technik ist die ausführliche und lückenlose Dokumentation von Verlauf und Ergebnissen aller Phasen.
Universal-Lexikon. 2012.